<head>
    <meta charset="UTF-8">
<title>算法训练 Dima and Figure</title>
<link rel="stylesheet" href="../css/main.css">
</head>
 <p>【问题描述】</p>
<div>Dima喜欢在一块长方形纸片上作自己喜欢的画。</div>
<div>一块大小为N*M的长方形纸片，包含着N行与M列，并且初始所有格子都是白色的。</div>
<div>Dima每一次作画，会把纸片上一些格子涂黑，并定义这幅&ldquo;画&rdquo;就是所涂黑的格子。</div>
<div>Dima喜欢一幅画仅当：</div>
<div>*包含至少一个涂黑的格子。</div>
<div>*所有的涂黑的格子形成一个连通块，换句话说，你可以从任意一个涂黑的格子移动到另一个任意涂黑的格子（一个格子可以移动到四联通的格子里）。</div>
<div>*从一个涂黑的格子(x1,y1)到另一个涂黑的格子(x2,y2)所需的最少移动步数等于|x1-x2|+|y1-y2|。</div>
<div>请帮助困惑的Dima，在N*M的长方形纸片上，他能画出多少幅自己喜欢的画呢？你只须回答答案对10^9+7取模就行了。</div>
<p>【输入格式】<br />
第一行包括两个整数N,M，代表长方形纸片的长与宽。<br />
【输出格式】<br />
第一行包含一个整数，代表答案模10^9+7的余数。<br />
【样例输入】</p>
<div>【样例输入1】2 2</div>
<div>【样例输入2】3 4</div>
<p>【样例输出】</p>
<p>&nbsp;</p>
<p>【样例输出1】13<br />
【样例输出2】571<br />
【数据规模和约定】<br />
对于所有的数据，1&lt;=N,M&lt;=150。</p>